home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / T U R B O Language / Turbo Pascal V7.0 / UTILS.ZIP / EPSILON.TEM < prev    next >
Text File  |  1992-10-30  |  8KB  |  410 lines

  1. Script  EPSILON;
  2.  
  3.  
  4. /***********************************************************************
  5.  
  6.       Epsilon editor emulation for Borland/Turbo Pascal IDE.
  7.  
  8.     This file contains a Turbo Editor Macro Language (TEML)
  9. script which emulates the Epsilon programmer's editor in the Borland/Turbo
  10. Pascal IDE.  A complete description of the TEML language and the Turbo
  11. Editor Macro Compiler (TEMC) can be found in the file "TEMC.DOC".
  12.  
  13.     The TEMC compiler can be invoked from the DOS command line at
  14. follows:
  15.  
  16.       temc [-c] epsilon.tem <IDE configuration file><.CMD><.TP>
  17.  
  18. The optional -c switch can also be specified as /c, and can appear in
  19. any argument position on the command line. If you use this option,
  20. any existing command table in your configuration file is thrown away
  21. before the script file is merged with those already defined. The
  22. configuration file extension must be specified as TEMC will modify both DOS
  23. and Windows IDEs config files.  Specify .CMD or .TP extentions for Windows
  24. or DOS IDE, respectively. If the .CMD file does not exist, it will be 
  25. created. The .TP file must exist, or an error is displayed.
  26.  
  27. Most of the simple Epsilon commands have been fully implemented.  Most
  28. of the complex command have been either partially implemented or not
  29. implemented at all.  The TEML macros names correspond to the names in
  30. the Espilon default macro set.  Below is a list of the commands that
  31. have been fully or partially implemented.
  32.  
  33. IDE Binding   Epsilon Command            Comments
  34. -----------   ---------------            -------------------------
  35. Ctrl-B        backward_character         
  36. Ctrl-H        backward_delete_character  
  37. Alt-B         backward_word      
  38. Ctrl-A        beginning_of_line      
  39. Home          beginning_of_window    
  40. Ctrl-L        center_window      
  41. Ctrl-D        delete_character
  42. Ctrl-N        down_line
  43. Tab           do_c_indent
  44. Ctrl-E        end_of_line
  45. End           end_of_window
  46. Ctrl-X+Ctrl-X exchange_point_and_mark
  47. Ctrl-X+Ctrl-C Quit;
  48. Ctrl-X+Ctrl-Z exit_level                 Leaves editor - Enables Menus
  49. Ctrl-X+Ctrl-F find_file
  50. Ctrl-F        forward_character
  51. Ctrl-Home     goto_beginning
  52. Ctrl-End      goto_end
  53. Ctrl-X+@i     insert_file
  54. Ctrl-K        kill_line                  Uses Block-copy - Allowing yanking
  55. Ctrl-W        kill_region
  56. Ctrl-X+0      kill_window
  57. Ctrl-X+Ctrl-N next_error                
  58. Ctrl-V        next_page
  59. Ctrl-O        open_line
  60. Alt-V         previous_page
  61. Ctrl-Q        quoted_insert
  62. Ctrl-X+@r     redo
  63. Ctrl-S+Ctrl-S RepeatSearch
  64. Ctrl-X+@u     undo
  65. Ctrl-X+Ctrl-S save_file
  66. Alt-Z         scroll_down
  67. Ctrl-Z        scroll_up
  68. Ctrl-X+Ctrl-M set_mark
  69. Ctrl-S        string_search
  70. Ctrl-P        up_line
  71. Ctrl-X+@w     write_region
  72. Ctrl-Y        yank
  73. Alt-Y         yank_pop                   Displays the Clipboard
  74.  
  75. ********************************************************************/
  76.  
  77. /*******************************************************************
  78.       TEML SCRIPTS TO EMULATE EPSILON FROM THE BORLAND PASCAL IDE
  79.  *******************************************************************/
  80.  
  81.  
  82. macro   backward_character
  83.     CursorSwitchedLeft;
  84. end;
  85.  
  86.  
  87. macro   backward_delete_character
  88.     BackSpaceDelete;
  89. end;
  90.  
  91.  
  92. macro   backward_word
  93.     WordLeft;
  94. end;
  95.  
  96.  
  97. macro   beginning_of_line
  98.     LeftOfLine;
  99. end;
  100.  
  101.  
  102. macro   beginning_of_window
  103.     TopOfScreen;
  104. end;
  105.  
  106.  
  107. macro   center_window
  108.     SetTempPos;
  109.     ScrollScreenUp;
  110.     CenterFixScreenPos;
  111.     ScrollScreenDown;
  112.     CenterFixScreenPos;
  113.     PageScreenUp;
  114.     CenterFixScreenPos;
  115.     PageScreenDown;
  116.     CenterFixScreenPos;
  117.     MoveToTempPos;
  118. end;
  119.  
  120.  
  121. macro   delete_character
  122.     DeleteChar;
  123. end;
  124.  
  125.  
  126. macro   do_c_indent
  127.     LiteralChar( 9 );
  128. end;
  129.  
  130.  
  131. macro   down_line
  132.     CursorDown;
  133. end;
  134.  
  135.  
  136. macro   end_of_line
  137.     RightOfLine;
  138. end;
  139.  
  140.  
  141. macro   end_of_window
  142.     BottomOfScreen;
  143. end;
  144.  
  145.  
  146. macro   exchange_point_and_mark
  147.     SwapPrevPos;
  148.     CenterFixScreenPos;
  149. end;
  150.  
  151.  
  152. macro   exit_level
  153.     Quit;
  154. end;
  155.  
  156.  
  157. macro   find_delimiter
  158.     MatchPairForward;
  159. end;
  160.  
  161.  
  162. macro   find_file
  163.     OpenFile;
  164. end;
  165.  
  166.  
  167. macro   forward_character
  168.     CursorSwitchedRight;
  169. end;
  170.  
  171.  
  172. macro   forward_level
  173.     MatchPairForward;
  174. end;
  175.  
  176.  
  177. macro   goto_beginning
  178.     HomeCursor;
  179. end;
  180.  
  181.  
  182. macro   goto_end
  183.     EndCursor;
  184. end;
  185.  
  186.  
  187. macro   insert_file
  188.     SetPrevPos;
  189.     HideBlock;
  190.     ReadBlock;
  191. end;
  192.  
  193.  
  194. /*  The kill_line Macro does not use the built-in DeleteToEOL TEML macro    */
  195. /*  but rather makes a highlighted block out the line, cuts the block into  */
  196. /*  the clipboard, thereby allowing 'yank'ing of deleted lines.  This method*/
  197. /*  however, requires that delete_character be used when empty lines ( lines*/
  198. /*  containing only a LineFeed character ) are to be deleted...             */
  199. macro   kill_line
  200.     SetTempPos;
  201.     SetBlockBeg;
  202.     end_of_line;
  203.     SetBlockEnd;
  204.     MoveToTempPos;
  205.     HighlightBlock;
  206.     ClipCut;
  207. end;
  208.  
  209.  
  210. macro   kill_region
  211.     SwapPrevPos;
  212.     SetBlockBeg;
  213.     SwapPrevPos;
  214.     SetBlockEnd;
  215.     HighlightBlock;
  216.     ClipCut;
  217. end;
  218.  
  219.  
  220. macro   kill_window
  221.     CloseWindow;
  222. end;
  223.  
  224.  
  225. macro   next_error
  226.     NextError;
  227. end;
  228.  
  229.  
  230. macro   next_page
  231.     PageDown;
  232. end;
  233.  
  234.  
  235. macro   next_window
  236.     NextWindow;
  237. end;
  238.  
  239.  
  240. macro   open_line
  241.     LiteralChar( 13 );
  242.     CursorSwitchedLeft;
  243. end;
  244.  
  245.  
  246. macro   previous_page
  247.     PageUp;
  248. end;
  249.  
  250.  
  251. macro   query_replace
  252.     Replace;
  253. end;
  254.  
  255.  
  256. macro   quoted_insert
  257.     LiteralChar;
  258. end;
  259.  
  260.  
  261. macro   save_file
  262.     SaveFile;
  263. end;
  264.  
  265.  
  266. macro   scroll_down
  267.     ScrollScreenDown;
  268.     FixCursorPos;
  269. end;
  270.  
  271.  
  272. macro   scroll_up
  273.     ScrollScreenUp;
  274.     FixCursorPos;
  275. end;
  276.  
  277.  
  278. macro   set_mark
  279.     HideBlock;
  280.     SetPrevPos;
  281. end;
  282.  
  283.  
  284. macro   string_search
  285.     SearchMenu;
  286. end;
  287.  
  288.  
  289. macro   up_line
  290.     CursorUp;
  291. end;
  292.  
  293.  
  294. macro   write_region
  295.     HideBlock;
  296.     SwapPrevPos;
  297.     SetBlockBeg;
  298.     SwapPrevPos;
  299.     SetBlockEnd;
  300.     HighlightBlock;
  301.     WriteBlock;
  302. end;
  303.  
  304.  
  305. macro   yank
  306.     HideBlock;
  307.     ClipPaste;
  308. end;
  309.  
  310.  
  311. macro   yank_pop
  312.     ClipShow;
  313. end;
  314.  
  315.  
  316.  
  317. Ctrl-B          :backward_character;
  318.  
  319. Ctrl-H          :backward_delete_character;
  320.  
  321. Alt-B           :backward_word;
  322.  
  323. Ctrl-A          :beginning_of_line;
  324.  
  325. Home            :beginning_of_window;
  326.  
  327. Ctrl-L          :center_window;
  328.  
  329. Ctrl-D          :delete_character;
  330.  
  331. Ctrl-N          :down_line;
  332.  
  333. Tab             :do_c_indent;
  334.  
  335. Ctrl-E          :end_of_line;
  336.  
  337. End             :end_of_window;
  338.  
  339. Ctrl-X+Ctrl-X   :exchange_point_and_mark;
  340.  
  341. Ctrl-X+Ctrl-C   :Quit;
  342.  
  343. Ctrl-X+Ctrl-Z   :exit_level;
  344.  
  345. Ctrl-X+Ctrl-F   :find_file;
  346.  
  347. Ctrl-F          :forward_character;
  348.  
  349. Ctrl-Home       :goto_beginning;
  350.  
  351. Ctrl-End        :goto_end;
  352.  
  353. Ctrl-X+@i       :insert_file;
  354.  
  355. Ctrl-K          :kill_line;
  356.  
  357. Ctrl-W          :kill_region;
  358.  
  359.  
  360. Ctrl-X+0        :kill_window;
  361.  
  362. Ctrl-X+@m       :make;
  363.  
  364.  
  365. /* The following is a non-Epsilon MACRO which can be usefully combined with */
  366. /* the insert_file macro to compensate for the fact that TEML's ReadBlock   */
  367. /* internal MACRO leaves point at the beginning of the block just read.     */
  368. /* Epsilon leaves point at the end of the block inserted.  This MACRO allows*/
  369. /* one to quickly move to the end of the block inserted...                  */
  370. Ctrl-X+Ctrl-K   :Begin
  371.                     MoveToBlockEnd;
  372.                     center_window;
  373.                     HideBlock;
  374.                  End;
  375.  
  376. Ctrl-X+Ctrl-N   :next_error;
  377.  
  378. Ctrl-V          :next_page;
  379.  
  380. Ctrl-O          :open_line;
  381.  
  382. Alt-V           :previous_page;
  383.  
  384. Ctrl-Q          :quoted_insert;
  385.  
  386. Ctrl-X+@r       :redo;
  387.  
  388. Ctrl-S+Ctrl-S   :RepeatSearch;
  389.  
  390. Ctrl-X+@u       :undo;
  391.  
  392. Ctrl-X+Ctrl-S   :save_file;
  393.  
  394. Alt-Z           :scroll_down;
  395.  
  396. Ctrl-Z          :scroll_up;
  397.  
  398. Ctrl-X+Ctrl-M   :set_mark;
  399.  
  400. Ctrl-S          :string_search;
  401.  
  402. Ctrl-P          :up_line;
  403.  
  404. Ctrl-X+@w       :write_region;
  405.  
  406. Ctrl-Y          :yank;
  407.  
  408. Alt-Y           :yank_pop;
  409.  
  410.